package com.weiliang.www;

import java.util.HashSet;
import java.util.Set;

/**
 * @Author: liangWeiQUQ
 * @Description: 数组中重复的数字
 * @DateTime: 2021/5/17 17:41
 * 找出数组中重复的数字。
 *
 *
 * 在一个长度为 n 的数组 nums 里的所有数字都在 0～n-1 的范围内。数组中某些数字是重复的，
 * 但不知道有几个数字重复了，也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。
 **/
public class ArrayReplication {
    public static void main(String[] args) {
        //定义一个数组
        int[] ints = new int[]{4, 3, 1, 0, 2, 5, 3};
        int b = arrayReplication(ints);
        System.out.println("任意重复的数字是" + b);
    }

    private static int arrayReplication(int[] ints) {
        //利用set去重实现重复数字
        Set<Object> set = new HashSet<>();
        int temp = -1;
        for (int i = 0; i < ints.length; i++) {
            if (!set.add(ints[i])) {
                temp = ints[i];
                break;
            }
        }
        return temp;
    }
}
